/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ProjetoCompreJa.Negocios;

import br.com.classesbasicas.Funcionario;
import ProjetoCompreJa.DAO.DAOEspecifico.DAOFuncionario;

import java.util.List;
import javax.swing.JFormattedTextField;
import javax.swing.JOptionPane;
import javax.swing.text.MaskFormatter;

public class Negocios_Funcionario {

    private List<Funcionario> funcionarios;

    public void CadastrarFuncionario(Funcionario fun) throws Exception {
        funcionarios = this.ListarFuncionarios();
        for (int i = 0; i < funcionarios.size(); i++) {
            if (fun.getId() == funcionarios.get(i).getId()) {
                throw new Exception("Codigo de Funcionario informado já existe");
            }
            if (fun.getCpf() == null ? funcionarios.get(i).getCpf() == null : fun.getCpf().equals(funcionarios.get(i).getCpf())) {
                throw new Exception("Nome do CPF do Funcionario informado já existe");
            }

            if (fun.getCpf().length() <= 10 && fun.getCpf().length() >= 12) {
                throw new Exception("Informe corretamente os 11 digitos do seu CPF");
            }
            if (fun.getCpf().trim().equals(" ") == true) {
                throw new Exception("O CPF do Funcionario se encontra Vazio");
            }
            if (fun.getCpf() != fun.getCpf().trim()) {
                throw new Exception("O CPF do Funcionario não pode conter espaços nem no inicio nem no fim da palavra");
            }
            if (fun.getRg() == null ? funcionarios.get(i).getRg() == null : fun.getRg().equals(funcionarios.get(i).getRg())) {
                throw new Exception("Nome do RG do Funcionario informado já existe");
            }

            if (fun.getRg().length() <= 6 && fun.getRg().length() >= 8) {
                throw new Exception("Informe corretamente os 8 digitos do seu RG");
            }
            if (fun.getRg().trim().equals(" ") == true) {
                throw new Exception("O RG do Funcionario se encontra Vazio");
            }
            if (fun.getRg() != fun.getRg().trim()) {
                throw new Exception("O RG do Funcionario não pode conter espaços nem no inicio nem no fim da palavra");
            }

        }
        DAOFuncionario funcionario = new DAOFuncionario();
        funcionario.Cadastrar(fun);
    }

    public List<Funcionario> ListarFuncionarios() throws Exception {
        DAOFuncionario fun = new DAOFuncionario();
        return fun.ListarFuncionarios();
    }

    public void ExcluirFuncionario(Funcionario fun) throws Exception {
        DAOFuncionario funcionario = new DAOFuncionario();
        funcionario.Excluir(fun);
    }

    public void AlterarFuncionario(Funcionario fun) throws Exception {
        DAOFuncionario funcionario = new DAOFuncionario();
        funcionario.Alterar(fun);
    }

    public List<Funcionario> VerificarLogin(Funcionario fun) throws Exception {
        DAOFuncionario funcionario = new DAOFuncionario();
        return funcionario.VerificarLogin(fun);
    }

    public void AlterarLoginSenha(Funcionario fun) throws Exception {
        DAOFuncionario funcionario = new DAOFuncionario();
        funcionario.AlterarLoginSenha(fun);
    }

}
